﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using DBUtils;

public partial class Salary_Summary : System.Web.UI.Page
{
    DataSet dsDept;//公司所有部门
    DataSet dsResult;//保存查询到的信息
    int iDeptID;//当前选中的部门ID
    /// <summary>
    /// 网页初始化时执行该方法。设置控件属性。
    /// 该过程调用 Employee.GetEmployeeInfo(iEmpID, emp) 函数，从数据库中获取员工的其他信息。
    /// 该过程调用 GetCEOInfo(iCEOID) 函数，从数据库中获取总经理的员工编号。
    /// 该过程调用 CheckOTReq.GetDeptList(dsDept) 函数，从数据库中获取所有部门的列表。
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)//如果页面首次载入
        {
            int ceo = 0;
            bool isAdmin = true;//是否有权限
            if (isAdmin)//如果有权限
            {

                //绑定部门列表
                int ok = CheckOTReq.GetDeptList(ref dsDept);
                cmbDeptList.DataSource = dsDept.Tables[0];
                cmbDeptList.DataTextField = dsDept.Tables[0].Columns[1].ToString();
                cmbDeptList.DataValueField = dsDept.Tables[0].Columns[0].ToString();
                cmbDeptList.DataBind();
                if (Employee.GetCEOInfo(ref ceo) == 1) //判断当前用户是否是CEO
                {
                    if (ceo == Convert.ToInt32(Session["EmployeeID"]))//如果当前登陆的是CEO
                    {
                        Panel1.Visible = true;

                        iDeptID = Convert.ToInt32(cmbDeptList.SelectedValue);
                    }
                    else
                    {
                        Employee emp = new Employee();
                        Employee.GetEmployeeInfo(Convert.ToInt32(Session["EmployeeID"]), emp);
                        cmbDeptList.SelectedValue = emp.DeptID.ToString();//设置部门号
                        Panel1.Visible = false;

                    }
                }
            }
            else//如果没有权限
            {

            }


        }
    }

    /// <summary>
    /// 当用户单击“显示结果”按钮时，该方法将部门工资汇总信息以 DataGrid 的形式显示。
    /// 该过程调用 SalaryInfo.DeptSummary(iDeptID, txtStartTime.Text.Trim, txtEndTime.Text.Trim, dsResult) 函数，检索数据库中的工资汇总信息。
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnSearch_Click(object sender, EventArgs e)
    {
        dsResult = new DataSet();
        iDeptID = Convert.ToInt32(cmbDeptList.SelectedValue);
        if (SalaryInfo.DeptSummary(iDeptID, txtStartTime.Text.Trim(),txtEndTime.Text.Trim(), ref dsResult) == 1)
        {
            grdResult.DataSource = dsResult.Tables[0];
            grdResult.DataBind();
            grdResult.Visible = true;
        }
        else
        {
            this.Response.Write("<script>alert('" + "查询信息失败" + "');</script>");//弹出失败信息
        }
    }

    /// <summary>
    /// 当用户更改选中部门时，该方法更新已保存的部门编号。
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void cmbDeptList_SelectedIndexChanged(object sender, EventArgs e)
    {
        iDeptID = Convert.ToInt32(cmbDeptList.SelectedValue);
    }

    /// <summary>
    /// 当用户选中或清除“按工资排序”复选框时，启用或禁用单选按钮列表。
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void chkSort_CheckedChanged(object sender, EventArgs e)
    {
        if (chkSort.Checked == true)
        {
            RadioButtonList1.Enabled = true;
        }
        else
        {
            RadioButtonList1.Enabled = false;
        }
    }
}
